Option Explicit

' ======================================================================
' Descriptor
' table 数据生成处理器接口实现类
' 字符串类型处理器
' ======================================================================

Implements IColDataCreatorHandler

' ======================================================================
' Field
' ======================================================================
Private dataSize As Integer

' ======================================================================
' Function
' ======================================================================
' 检查当前的处理器是否使用于某个列
' @param tablePhyName table 物理名
' @param colLogicName 列逻辑名
' @param colPhyName 列物理名
' @param colType 列数据类型
' @param colMainSize 列长度
' @param colScaleSize 列的小数长度
' @return 当前处理器是否适用于某个列
Public Function IColDataCreatorHandler_handle(ByRef tablePhyName As String, _
    ByRef colLogicName As String, ByRef colPhyName As String, _
    ByRef colType As String, _
    ByRef colMainSize As Integer, ByRef colScaleSize As Integer) As Boolean

    ' 这里只检查列的类型
    IColDataCreatorHandler_handle = ( colType = UtilsDBTable.TYPE_STRING )
End Function

' 保存列的信息，以方便后面生成随机数据时，减少参数传递
' @param tablePhyName table 物理名
' @param colLogicName 列逻辑名
' @param colPhyName 列物理名
' @param colType 列数据类型
' @param colMainSize 列长度
' @param colScaleSize 列的小数长度
Public Sub IColDataCreatorHandler_saveColDefine(ByRef tablePhyName As String, _
    ByRef colLogicName As String, ByRef colPhyName As String, _
    ByRef colType As String, _
    ByRef colMainSize As Integer, ByRef colScaleSize As Integer)

    ' 保存数据长度
    dataSize = colMainSize
End Sub

' 生成随机数据
' 注意:
'     调用该方法前，需要手动调用 saveColDefine 来保存列的定义信息
'
' @return 满足列定义的随机数据
Public Function IColDataCreatorHandler_createRandomData() As String
    If dataSize <= 0 Then
        IColDataCreatorHandler_createRandomData = ""
    Else
        IColDataCreatorHandler_createRandomData = UtilsRandom.enNumStr(dataSize)
    End If
End Function